/*
*Copyright 2021-2023 NERCIS
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*/

package cn.ac.nercis.pes.model.bo.doc;

import cn.ac.nercis.pes.model.bo.doc.common.evaluation.EvaluationBasisBO;
import cn.ac.nercis.pes.model.bo.doc.common.evaluation.EvaluationProcessBO;
import cn.ac.nercis.pes.model.bo.doc.common.evaluation.EvaluationRangeBO;
import cn.ac.nercis.pes.model.bo.doc.common.table.EvaluatorBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.evaluation.EvaluationContentBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.evaluation.EvaluationPlanBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.evaluation.SystemSituationBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.system.SystemBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.table.EvaluationAssetSchemeBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.unit.EvaluationUnitBO;
import cn.ac.nercis.pes.model.bo.doc.scheme.unit.TestedUnitBO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 密评方案数据
 * @author zpy
 * @version 1.0.0
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SchemeDataBO {
    /**
     * 报告编号
     */
    private String reportCode;
    /**
     * 被测单位+系统名称
     */
    private String testedUnitSystemName;
    /**
     * 委托单位
     */
    private String entrustedUnitName;
    /**
     * 是否有委托单位
     */
    private Boolean hasEntrustedUnitName;
    /**
     * 报告时间（yyyy年MM月）
     */
    private String reportDate;
    /**
     * 被测单位信息
     */
    private TestedUnitBO testedUnit;
    /**
     * 测评单位信息
     */
    private EvaluationUnitBO evaluationUnit;
    /**
     * 系统信息
     */
    private SystemBO system;
    /**
     * 测评依据信息
     */
    private EvaluationBasisBO evaluationBasis;
    /**
     * 测评过程
     */
    private EvaluationProcessBO evaluationProcess;
    /**
     * 测评组人员
     */
    private List<EvaluatorBO> evaluators;
    /**
     * 被测系统情况
     */
    private SystemSituationBO systemSituation;
    /**
     * 测评范围与方法
     */
    private EvaluationRangeBO evaluationRange;
    /**
     * 测评计划
     */
    private EvaluationPlanBO evaluationPlan;
    /**
     * 测评配置需求
     */
    private EvaluationContentBO evaluationContent;
    /**
     * 测评对象
     */
    private List<EvaluationAssetSchemeBO> evaluationAsset;
}
